using System;
using System.Collections;
using System.Text;

namespace DBRandomGenerator
{

    /// <summary>
    /// modified Nov 9th 2009 
    ///       -- Added functionality to register Include column functionality from column detection
    /// </summary>
    public class Column
    {
        #region "private variables"
        private string _Name;
        private string _DataType;
        private int _Length;
        private bool _Nullable;
        private bool _IsForeignKey;
        private int _OrdinalPosition;
        private bool _IsComputed;
        private bool _IsIdentity;
        private bool _IsGuid;
        private string _ParentKeyColumn;
        private string _ParentKeyTable;
        private object _DataValue;
        #endregion

        #region "Properties"

        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }

        public string DataType
        {
            get { return _DataType; }
            set { _DataType = value; }
        }
        public int Length
        {
            get { return _Length; }
            set { _Length = value; }
        }
        public int OrdinalPosition
        {
            get { return _OrdinalPosition; }
            set { _OrdinalPosition = value; }
        }
        public bool Nullable
        {
            get { return _Nullable; }
            set { _Nullable = value; }
        }
        public bool ForeignKey
        {
            get { return _IsForeignKey; }
            set { _IsForeignKey = value; }
        }
        public bool IsIdentity
        {
            get { return _IsIdentity; }
            set { _IsIdentity = value; }
        }
        public bool IsComputed
        {
            get { return _IsComputed; }
            set { _IsComputed = value; }
        }
        public bool IsGuid
        {
            get { return _IsGuid; }
            set { _IsGuid = value; }
        }

        public string ParentKeyColumn
        {
            get { return _ParentKeyColumn; }
            set { _ParentKeyColumn = value; }
        }
        public string ParentKeyTable
        {
            get { return _ParentKeyTable; }
            set { _ParentKeyTable = value; }
        }

        public object DataValue
        {
            get { return _DataValue; }
            set { _DataValue = value; }
        }

        public Boolean IncludeColumn { get; set; }
        public String TableName { get; set; }


        #endregion
    }
}
